首页 新闻 会员 周边 捐助

在控制台程序中输入小数

0
[已解决问题] 解决于 2014-10-09 09:26

在控制台中输入小数后,怎么得到它的小数部分,且不失真。

whatever_pds的主页 whatever_pds | 菜鸟二级 | 园豆:214
提问于:2013-11-02 22:34
< >
分享
最佳答案
0

package LianShou;

import java.util.Scanner;

/**
* 得到double的小数部分
* @author Administrator
*
*/
public class Decimal {

/**
* @param args
*/
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
//输入
double num=input.nextDouble();
//转成String
String str=String.valueOf(num);
//根据小数点分割字符串
String numStr=str.substring(str.indexOf('.')+1);
//输出小数部分
System.out.println(numStr);
}

}

奖励园豆:5
IT懒猫 | 菜鸟二级 |园豆:207 | 2013-11-03 14:36

如果你想得到的是double或者int类型,把numStr转回来就行了,

int numInt=Integer.parseInt(numStr);
double numDou=Double.parseDouble(numStr);

IT懒猫 | 园豆:207 (菜鸟二级) | 2013-11-03 14:39

恩恩,谢谢了,我也想到了用分割的方法,就是不知道怎么写?

whatever_pds | 园豆:214 (菜鸟二级) | 2013-11-03 14:52

@whatever199006: (⊙o⊙)嗯,给个采纳就行了。

IT懒猫 | 园豆:207 (菜鸟二级) | 2013-11-03 15:49

@IT懒猫: 我要的是在控制台里写的啊

whatever_pds | 园豆:214 (菜鸟二级) | 2013-11-03 20:40

@whatever199006:

 

 1 //1
 2 string val = Console.ReadLine();
 3 decimal number = string.IsNullOrEmpty(val) ? 0 : val.IndexOf(".") == -1 ? Convert.ToDecimal(val) : val.IndexOf(".") + 1 >= val.Length ? 0 : Convert.ToDecimal(val.Substring(val.LastIndexOf(".") + 1));
 4 number = val.Split(new string[] { "." }, StringSplitOptions.RemoveEmptyEntries).Length > 2 ? 0 : number;
 5 Console.WriteLine(number);
 6 
 7 //2
 8 decimal a = Convert.ToDecimal(Console.ReadLine());
 9 a = Convert.ToDecimal(a.ToString().Replace(decimal.Truncate(a).ToString() + ".", ""));
10 Console.WriteLine(a);
11 
12  

 

Mundo Novo | 园豆:69 (初学一级) | 2013-11-04 09:49

@Mundo Novo: 第三行和第四行的没看明白,能解释一下吗?谢谢了

whatever_pds | 园豆:214 (菜鸟二级) | 2013-11-04 11:04

@whatever199006:我晕,你没说是用什么语言实现,我用的是java 

IT懒猫 | 园豆:207 (菜鸟二级) | 2013-11-04 18:36

@IT懒猫: 能用控制台吗?

whatever_pds | 园豆:214 (菜鸟二级) | 2013-11-11 21:59
其他回答(1)
0

且不失真是什么意思?

Mundo Novo | 园豆:69 (初学一级) | 2013-11-03 12:39
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册