将字符串转换为带有指数数字的浮点数

Convert string to float with exponencial numbers

我需要将字符串转换为浮点数 我需要你-sql 代码。

脚本可以像 10^2

这样的指数

我试过 Float.Convert 但没用。

我希望

convert(10^2) = 100

假设这是您自己的格式,您将需要编写一个 C# 函数来执行此操作。

后面可以写代码

https://www.purplefrogsystems.com/paul/2017/04/calling-u-sql-stored-procedures-with-c-code-behind/

或函数

https://sqlplayer.net/2017/10/functions-in-the-usql-the-hidden-gem-in-the-summer-2017-update/

使用 U-SQL 内联函数的示例:

DECLARE @func Func <string,int?> = (s) =>{int x = Convert.ToInt32(s.Split('^')[0]); int y = Convert.ToInt32(s.Split('^')[1]); return x*y;};

DECLARE @inputFile string = @"\input\input36.csv";
DECLARE @outputFile string = @"\output\output.csv";

@input =
    EXTRACT rowId int,
            expo string
    FROM @inputFile
    USING Extractors.Csv();


@output =
    SELECT *,
           @func(expo) AS z
    FROM @input;


OUTPUT @output
TO @outputFile
USING Outputters.Csv(quoting:false);

使用这个 sample file,我得到了这些结果: