public void generateNotification(String yourVariable) {
Intent offlineIntent = new Intent(this, NotificationReceiverActivity.class);
offlineIntent.setAction("Go Offline");
Bitmap largeIcon = BitmapFactory.decodeResource(getResources(), R.mipmap.logo);
long when = System.currentTimeMillis();
Uri alarmSound = RingtoneManager
.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
Intent notificationIntent = new Intent(getApplicationContext(), ActivityHome.class);
notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP
| Intent.FLAG_ACTIVITY_SINGLE_TOP);
PendingIntent mainPIntent = PendingIntent.getActivity(this, 0,
notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
Random random = new Random();
int m = random.nextInt(9999 - 1000) + 1000;
Notification noti = new Notification.Builder(this)
.setContentTitle(getResources().getString(R.string.app_name))
.setContentText(alertMessage)
.setSmallIcon(R.mipmap.logo)
.setLargeIcon(largeIcon)
.setAutoCancel(true)
.setSound(alarmSound).setAutoCancel(true).setWhen(when)
.setContentIntent(mainPIntent)
.setVibrate(new long[]{1000, 1000, 1000, 1000, 1000})
.build();
NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
noti.flags |= Notification.FLAG_AUTO_CANCEL;
notificationManager.notify(m, noti);
}
a = 2.3
b = a*100
输出:print b
230.0
输出:print 2.3*100
Double和Float乘法似乎有所不同。是吗?
上述行为的解释是什么?
答案 0 :(得分:2)
首先,Python只有浮点数的单一类型,即float;没有双重类型。
现在,我不确定原因,但您的问题似乎归结为使用print
。
>>> 2.3*100
229.99999999999997
>>> print 2.3*100
230.0
那是Python 2.7.10。有趣的是,这不会发生在3.5.1:
>>> 2.3*100
229.99999999999997
>>> print(2.3*100)
229.99999999999997
答案 1 :(得分:0)
我假设您使用旧的python 2,因为您的print
语句。当我运行代码时,我会得到相同的结果,对于print
个语句:
Python 2.7.10 (default, Jul 14 2015, 19:46:27)
>>> a = 2.3
>>> b = a*100
>>> print b
230.0
>>> print 2.3*100
230.0
我怀疑你正在使用交互式python。这是从浮点到字符串的转换功能:
Python 2.7.10 (default, Jul 14 2015, 19:46:27)
>>> 2.3*100
229.99999999999997
>>> print 2.3*100
230.0
>>> str(2.3*100)
'230.0'
>>> repr(2.3*100)
'229.99999999999997'
这说明了str
使用的print
与交互式python使用的repr
之间的区别。
答案 2 :(得分:-1)
快速谷歌搜索给了我this.
基本上,浮点数以位(0-1)表示,类似于我们知道的数字用0-9表示的方式。很多数字都不能用这种方式准确表示,类似于我们无法准确表示十进制的1/3(常规0-9)。