Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/301.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#_Math - Fatal编程技术网

C# 如何将小数后的数字添加到数字中

C# 如何将小数后的数字添加到数字中,c#,math,C#,Math,我想取一个带小数点的数字,然后将该点后的数字加到整数上 例如: 投入:1.88 产出:188 不专门处理2个十进制数 谢谢。根据kosist的建议: double input = 1.88; var inputAsString = input.ToString(CultureInfo.InvariantCulture); var output = inputAsString.Replace(".", ""); //Optional: var outputA

我想取一个带小数点的数字,然后将该点后的数字加到整数上

例如:

投入:1.88

产出:188

不专门处理2个十进制数


谢谢。

根据kosist的建议:

double input = 1.88;
var inputAsString = input.ToString(CultureInfo.InvariantCulture);
var output = inputAsString.Replace(".", "");
//Optional:
var outputAsInt = int.Parse(output);

正如科西斯特所建议的那样:

double input = 1.88;
var inputAsString = input.ToString(CultureInfo.InvariantCulture);
var output = inputAsString.Replace(".", "");
//Optional:
var outputAsInt = int.Parse(output);

将数字转换为字符串,去掉小数点分隔符,再转换回整数。var值=1.88m如何;while value-longvalue!=0{value*=10;}返回longvalue;?根据您想这样做的原因,简单地乘以100可能是最简单的解决方案。否则,它可能会因为浮点精度或缺少浮点精度而变得模糊。@john-假设OP使用十进制,就不应该有浮点精度问题。。。但是你是对的,它没有明确说明。@kosist-这可能是最简单的方法,但是应该明确指定确切的区域性,这样依赖于区域性的十进制分隔符就不会有问题了。还要注意数千个分隔符…将数字转换为字符串,从中删除十进制分隔符,然后再转换回整数;while value-longvalue!=0{value*=10;}返回longvalue;?根据您想这样做的原因,简单地乘以100可能是最简单的解决方案。否则,它可能会因为浮点精度或缺少浮点精度而变得模糊。@john-假设OP使用十进制,就不应该有浮点精度问题。。。但是你是对的,它没有明确说明。@kosist-这可能是最简单的方法,但是应该明确指定确切的区域性,这样依赖于区域性的十进制分隔符就不会有问题了。同时还要注意数千个分隔符……我认为必须对范围进行一些验证,因为仅通过删除“.”将double转换为int肯定会导致int溢出。在许多常见情况下,如果溢出是一个问题,那么您可以尝试将double解析为double,以获得更多的净空。不过,这取决于您的用例。我认为必须对范围进行一些验证,即仅通过删除“.”将double转换为int肯定会导致int溢出。在许多常见情况下,如果溢出是一个问题,那么您可以尝试将double解析为double,以获得更多的净空。但这取决于您的用例。