【发布时间】:2021-09-09 14:13:07
【问题描述】:
正如我在问题中所说,我最近编写了一个小程序来计算建造一个房间所需的砖块数量,使用以下方法
float result = ((fLenght * fWitdh) * fHeight) * bricksPerMeter;
在我的主计算机和第二台计算机上运行测试用例时,他们会得出不同的答案
例如:PC 1 ((15 * 1)* 1.8)* 40 = 1080
具有相同值的 PC 2 产生 600 作为答案
现在通过更改第二台计算机上的十进制符号来修复错误
我想知道我的代码是否有办法检查是否是这种情况并尝试修复它 不用我去每台电脑手动设置
【问题讨论】:
-
“现在通过更改第二台计算机上的十进制符号来修复错误” - 嗯?我觉得我们必须在这里遗漏一些信息。
-
好的,主计算机上的十进制符号是一个点,而在第二个计算机上它是一个逗号,如果你愿意的话,可以通过将符号更改为在它工作的两台机器上匹配。我可以像 60 行代码一样链接 github 页面
-
不,我明白这一点。如果您接受用户输入,我只能看到这是一个问题。但我们在您的问题中看不到任何证据,也没有任何将用户输入解释为数值的代码。
-
好的,那么你如何解释(解析)这些数字呢?为什么你要强制执行一种不同的解析数字的方式?概括:在德国计算机上,小数点分隔符是逗号,德国人会觉得以这种方式输入十进制值非常自在。在英式英语计算机上,小数分隔符是句号,英式英语用户以这种方式输入小数时会感到非常自在。
-
看来你应该使用
float.TryParse(value, NumberStyles.Any, CultureInfo.InvariantCulture, out fValue);