C# 如何去掉保留整数位 double ss = 1223.12334;int i=(int)ss; 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 private int GetInt( decimal d ) { string returnvalue = ""; string s = d.ToString(); int i = s.IndexOf( "." ); if ( i > 0 ) { returnvalue = s.Substring( 0,i ); } else { returnvalue = s; } return int.Parse( returnvalue ); } 用(int)强制转换吧。 winxieddd(一剑飘香(找工作)) 的方法是对的,试试看:Console.WriteLine((int)123.4);Console.WriteLine((int)123.6);结果都是输出:123可见用(int)进行强制转换,系统不会四舍五入。 在vb.net中是用math.Round,估计C#也差不多吧.你找一找帮助看一看吧. 如下:Math.Floor 方法 [C#] 返回小于或等于指定数字的最大整数。public static double Floor(double d);参数 d 数字。 返回值 小于或等于 d 的最大整数。如果 d 等于 NaN、NegativeInfinity 或 PositiveInfinity,则返回该值。备注 此方法的行为遵循 IEEE 标准 754 的第 4 节。这种舍入有时称为“向负无穷舍入”。示例:Console.WriteLine("{0}Floor:", nl);for (value = 2.1; value >= 0.9; value -= 0.1) Console.WriteLine("Floor({0:f}) = {1}", value, Math.Floor(value));输出结果:Floor:Floor(2.10) = 2Floor(2.00) = 2Floor(1.90) = 1Floor(1.80) = 1Floor(1.70) = 1Floor(1.60) = 1Floor(1.50) = 1Floor(1.40) = 1Floor(1.30) = 1Floor(1.20) = 1Floor(1.10) = 1Floor(1.00) = 0 在JavaScript里也是同名的一个方法:JavaScript中的方法:floor 方法返回小于等于其数值参数的最大整数。 Math.floor(number)必选项 number 参数是数值表达式。 楼上的都说了,但是Int的强制类型转换也可以用啊!!! 例如下面的是JavaScript写的一个关于Math.floor的示例代码:----------阶乘函数,这次是用 JScript 代码编写的。 // 计算阶乘的函数。如果传递了// 无效的数值(例如小于零),// 将返回 -1,表明发生了错误。若数值有效,// 把数值转换为最相近的整数,并// 返回阶乘。function factorial(aNumber){ aNumber = Math.floor(aNumber); // 如果这个数不是一个整数,则向下舍入。 if (aNumber < 0) { // 如果这个数小于 0,拒绝接收。 return -1; } if (aNumber == 0) { // 如果为 0,则其阶乘为 1。 return 1; } else return (aNumber * factorial(aNumber - 1)); // 否则,递归直至完成。} System.Math.Round是四舍五入,按照楼主的说法,用(int)强制转换是最简单直观的。 有相应的方法不用为什么还要用强制转换的方法呢,我觉得用(int)强制转换不好,也不通用. 不知道为什么编译不通过? docnetbar 子窗体在菜单栏上显示最大最小化按钮 想实现DataGridView中的数据统计 怎样把Hashtable的值按 value的值升序排序!value为int类型 存储过程 关于C#上传和下载服务器上的文件时进度条的问题 一个奇怪的需求? 调试高手请进,出了个莫名其妙的问题! Mono.Android问题,“未处理的异常” 如何进行C#和Java的混合编程 网上交易应该怎样分析? 关于局域网内的网络管理系统。给各位大大加分
{
string returnvalue = "";
string s = d.ToString();
int i = s.IndexOf( "." );
if ( i > 0 )
{
returnvalue = s.Substring( 0,i );
}
else
{
returnvalue = s;
}
return int.Parse( returnvalue );
}
Console.WriteLine((int)123.4);
Console.WriteLine((int)123.6);
结果都是输出:123可见用(int)进行强制转换,系统不会四舍五入。
public static double Floor(double d);
参数
d 数字。
返回值
小于或等于 d 的最大整数。如果 d 等于 NaN、NegativeInfinity 或 PositiveInfinity,则返回该值。备注
此方法的行为遵循 IEEE 标准 754 的第 4 节。这种舍入有时称为“向负无穷舍入”。示例:Console.WriteLine("{0}Floor:", nl);
for (value = 2.1; value >= 0.9; value -= 0.1)
Console.WriteLine("Floor({0:f}) = {1}", value, Math.Floor(value));输出结果:Floor:
Floor(2.10) = 2
Floor(2.00) = 2
Floor(1.90) = 1
Floor(1.80) = 1
Floor(1.70) = 1
Floor(1.60) = 1
Floor(1.50) = 1
Floor(1.40) = 1
Floor(1.30) = 1
Floor(1.20) = 1
Floor(1.10) = 1
Floor(1.00) = 0
返回小于等于其数值参数的最大整数。 Math.floor(number)必选项 number 参数是数值表达式。
阶乘函数,这次是用 JScript 代码编写的。 // 计算阶乘的函数。如果传递了
// 无效的数值(例如小于零),
// 将返回 -1,表明发生了错误。若数值有效,
// 把数值转换为最相近的整数,并
// 返回阶乘。
function factorial(aNumber)
{
aNumber = Math.floor(aNumber); // 如果这个数不是一个整数,则向下舍入。
if (aNumber < 0)
{ // 如果这个数小于 0,拒绝接收。
return -1;
}
if (aNumber == 0)
{ // 如果为 0,则其阶乘为 1。
return 1;
}
else return (aNumber * factorial(aNumber - 1)); // 否则,递归直至完成。
}