Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将两个整数(一个包含整数部分,另一个包含小数部分)组合成一个浮点数_C#_Floating Point - Fatal编程技术网

C# 将两个整数(一个包含整数部分,另一个包含小数部分)组合成一个浮点数

C# 将两个整数(一个包含整数部分,另一个包含小数部分)组合成一个浮点数,c#,floating-point,C#,Floating Point,如何通过组合两个整数来生成双精度值?我已经试过搜索了,但是我找不到我正在寻找的答案 事情是这样的: int wholeNumber = 2; int decimal = 25; string number = wholeNumber + "." + decimal double doubleNumber = Double.Parse(number); 我想制作一个2.25的翻倍版本。作弊解决方案如下: int wholeNumber = 2; int decimal = 25; strin

如何通过组合两个整数来生成双精度值?我已经试过搜索了,但是我找不到我正在寻找的答案

事情是这样的:

int wholeNumber = 2;
int decimal = 25;
string number = wholeNumber + "." + decimal
double doubleNumber = Double.Parse(number);

我想制作一个2.25的翻倍版本。

作弊解决方案如下:

int wholeNumber = 2;
int decimal = 25;
string number = wholeNumber + "." + decimal
double doubleNumber = Double.Parse(number);
干净的解决方案包括检查“十进制”中有多少个值,除以10^amount并相加

正如所指出的,十进制分隔符是特定于文化的,因此完全正确的版本是

string number = wholeNumber + System.Globalization.CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSepar‌​ator + decimal
double doubleNumber = Double.Parse(number);
我保留了前一个,因为它更容易理解

或者。。。只要用数学:

double d = wholeNumber + (double)decimal / 100;

说真的…

我不知道该怎么处理。数学,Abs,或者否定一切。我想OP知道如何为自己的实现工作。别忘了十进制分隔符是特定于区域性的。与其使用,不如将其替换为相应编辑的“System.Globalization.CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator”。我保留了两者,因为上面的一个更容易理解,即使它不是完全正确的。实际上我们只是想把一个时间转换成一个双时间。有一个负值是不可能的,所以我们猜它解决了。非常感谢你!如果小数点是5怎么办?这是2.5还是2.05?如果您想要2.025,它将不起作用,因为int不存储前导零。decimal是C的关键字。您可以尝试连接两个字符串2和25,并使用Parse函数将其转换为double。我同意上面的评论,缺少前导零会让你头疼。我还想指出,如果值不能正确表示,使用double或float可能会引入舍入误差。这一切都取决于OP的问题是如何定义的,对吗?你会期待什么?你真的认为需要字符串串联+解析才能将整数部分和小数部分组合成浮点数吗?我们只是想把时间转换成双精度,所以我们猜第一个答案足够好了。非常感谢你的回答。