我有这个字符串:
Dim value as String = "0.11209176170341301"
并尝试使用此代码将字符串转换为带有两个位置的十进制:
Dim value as String = "0.11209176170341301"
Dim valueInDecimal As Decimal
If [Decimal].TryParse(value, valueInDecimal) Then
Console.WriteLine(valueInDecimal.ToString("0:0.#"))
End If
我得到了这个结果:
11209176170341301D
我需要得到这个:
0.11
我做错了什么?
我想从字符串值
得到一个带有两个位数的小数答案 0 :(得分:1)
您也可以使用基本的字符串操作:
string value = "0.11209176170341301";
var parts = value.Split('.');
var floatingPart = parts[1].Substring(0, 2);
var truncatedValue = parts[0] + "," + floatingPart;
decimal d = decimal.Parse(truncatedValue);
string s = d.ToString();
Console.Write(s);
Console.Read();
如果你只需要它作为字符串然后你可以将它截断为字符串然后它会更容易:
string value = "0.11209176170341301";
var parts = value.Split('.');
var floatingPart = parts[1].Substring(0, 2);
var truncatedValue = parts[0] + "," + floatingPart;
Console.Write(truncatedValue);
或者即使你没有转换'。'到','那就是这样的:
string value = "0.11209176170341301";
var parts = value.Split('.');
var floatingPart = parts[1].Substring(0, 2);
var truncatedValue = string.Join(".",parts[0],floatingPart);
Console.Write(truncatedValue);
答案 1 :(得分:0)
使用Math.Round函数
var x = "0.11209176170341301";
Console.Write(Math.Round(Convert.ToDecimal(x), 2));