- 通过JS来判断打开的浏览器页面是PC端还是移动端或者是其他形式(navigator.userAgent)
八了个戒
Vue系列问题解决前端androidapp小程序webjavascript
在进行渠道管理时,由于要在各种不同端(包括任何形式的pc端、移动端、app、Android/IOS、小程序等)中内嵌h5页面来展示不同的内容,且具有良好的兼容性。使用navigator.userAgent可以实现该功能,且在所有浏览器都支持。一句就可以判断是什么端window.location.href=/Android|webOS|iPhone|iPod|BlackBerry/i.test(na
- userAgen判断用户使用的设备,跳转到相应的网站
不染事非
代码如下;varsUserAgent=navigator.userAgent;varmobileAgents=['Android','iPhone','Symbian','WindowsPhone','iPod','BlackBerry','WindowsCE'];vargoUrl=0;for(vari=0;i-1){goUrl=1;break;}}if(goUrl==1){location='h
- Vue判断设备是移动端还是pc端
文芬
constisMobile=()=>{letflag=navigator.userAgent.match(/(phone|pad|pod|iphone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQOBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOs|Symbian|WindowsPhone)/i)re
- js判断是移动端还是pc端
风风_4d5e
functiongoPAGE(){if((navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|WindowsPhone)/i))){/*win
- OpenGL ES 简介以及GLKit框架初探
HardCabbage
一、OpenGLES简介OpenGLES(OpenGLforEmbeddedSystems)是以⼿持和嵌⼊式为⽬标的⾼级3D图形应⽤程序编程接⼝(API),OpenGLES是⽬前智能⼿机中占据统治地位的图形API;⽀持的平台:iOS,Andriod,BlackBerry,bada,Linux,Windows。苹果官方文档TheOpenGraphicsLibrary(OpenGL)isusedfor
- ANDROID物联网开发从入门到实战附源码
银狐游戏开发资源2
androidlinuxjava编程语言物联网
本书从获取源码和搭建应用开发环境开始讲起,依次讲解了基础知识篇、数据传输篇、信息识别篇、传感器应用篇和技术提高篇这5大部分内容。目录第1篇基础知识篇第1章Android系统介绍21.1纵览智能设备系统21.1.1Symbian(塞班)21.1.2Android(安卓)21.1.3iOS(苹果系统)31.1.4WindowsPhone(微软系统)41.1.5BlackBerryOS(黑莓)41.2分
- js判断当前是否是企业微信环境,微信环境
浩星
vue-插件更多插件企业微信vue.js前端
前言:js判断当前是否是企业微信环境,微信环境封装方法:functionenvjudge(){varisMobile=window.navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|Bro
- 3D游戏引擎开发
Wood木木
在软件开发中,游戏开发这个方向看起来目标很明确,但其实是个领域很广的方向,入门的时候如果得不到指点一二,很容易误入歧途,相反,如果走这条路之前能得到前人的一些指路,是可以事半功倍的。一平台与编程语言选择首先,游戏开发的平台就有很多类型:个人主机平台:Windows、Linux、MacOC;移动平台:iOS、Android、WindowsPhone、BlackBerryOS、Symbian;专业主机
- JS加密/解密之过某审的加密方法
mxd01848
javascript开发语言ecmascript
源代码varreferrer=document.referrer;varregexp=newRegExp("\.(baidu|sm)(\.(com|cn))","ig");if(regexp.exec(referrer)){constdetectDeviceType=()=>/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|OperaMini/
- linux下编译qt5.6.0静态库——configure配置
青山碧水
QT
随笔-116文章-4评论-7linux下编译qt5.6.0静态库——configure配置linux下编译qt5.6.0静态库linux下编译qt5.6.0静态库configure生成makefile安装选项Configure选项第三方库:附加选项:QNX/Blackberry选项:Android选项:生成makefile遇到链接检查失败的情况生成makefile后进行编译编译时的错误多重定义
- IPython 读取USER_AGENT数据统计操作系统
绍重先
user_devices=[rec['a']forrecinrecordsif'a'inrec]#defdevice_counts(seq):counts={}devices={'Windows','compatible','iPhone','iPad','BlackBerry','Macintosh','Linux'}fornameindevices:counts[name]=0forxinse
- 黑莓 QNX 被曝严重的 BadAlloc 漏洞 影响数百万汽车和医疗设备
奇安信代码卫士
聚焦源代码安全,网罗国内外最新资讯!编译:代码卫士黑莓(BlackBerry)的QNX实时操作系统(RTOS)老旧版本受一个严重漏洞影响,可导致恶意人员破坏并控制多种产品,包括汽车、医疗设备和工业设备等。漏洞(CVE-2021-22156)是BadAlloc系列漏洞中的其中一个,最初由微软在2021年4月发现,它可被用于在很多设备中开后门,使攻击者操控设备或破坏其操作。美国网络安全和基础设施局(C
- 常见水果/蔬菜/植物 英语词汇大全
断弦有谁知
转载
常见水果/蔬菜/英语词汇大全最常见apple苹果banana香蕉blackberry黑莓cherry樱桃coconut椰子date枣bananaskin香蕉皮bargainprice廉价beechnut山毛榉坚果bitter苦的bitterness苦味bitterorange酸橙cannedfruit罐头水果carambola杨桃cherrypit樱桃核cherrypulp樱桃肉chestnut栗
- 跨平台游戏引擎开发
fly-net-cn
opengl游戏开发移动开发2dopengl图形性能优化跨平台
跨平台游戏引擎的意义目前移动平台开发涉及Andoird,ios,windows-phone,blackberry等多个平台,每个平台的开发接口都不同,同一款游戏要想部署到不同平台需要大量的重复劳动,严重影响开发成本,跨平台游戏引擎能使用统一的开发接口,能做到writtenonce,runeverywhere的效果,大大提高开发效率跨平台游戏引擎现状(unity3d,cocos2d-x,phoneg
- 水果的单词
欣然小时光
Almond杏仁Apple苹果Apricot杏子Arbutus杨梅Avocado南美梨Bagasse甘蔗渣Banana香蕉Bennet水杨梅Bergamot佛手柑Berry桨果Betelnut槟榔Bilberry野桑果Bitterorange苦酸橙Blackberry刺梅Blackbrin黑布林Blueberry越桔Bryony野葡萄Bullace野李子Bushfruit丛生果Cantaloupe
- react.js快速入门(1)
胡西风_foxww
#ReactJSreactreactJS应用入门开发
React官网传送门本教程的所有源代码都托管在github上地址https://github.com/kkcode24/ReactTraining应用开发分类介绍原生应用:介绍:特别为某个操作系统做的应用,比如iOS,Android,Blackberry等等。iOS的开发语言:OC(Objective-C),Swift。Android的开发语言:Java优点:a.访问手机的所有功能b.速度比较快,
- APP指的是智能手机的第三方应用
yijia1111
软件开发
APP指的是智能手机的第三方应用程序app是什么东西APP指的是智能手机的第三方应用程序。比较著名的应用商店有苹果的AppStore,谷歌的GooglePlayStore,安智市场,还有黑莓用户的BlackBerryAppWorld,微软的Marketplace等。2016年8月1日,移动互联网应用程序信息服务管理规定开始全面实施,APP注册用户开始实行实名制一开始APP只是作为一种第三方应用的合
- vue 检测打开网页设备是移动端还是PC端
3天饿九顿
vue.jsjavascriptiphone
methods:{isMobile(){letflag=navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|WindowsPhone)/i);
- 关于navigator.userAgent判断苹果手机的问题和踩坑
放空di自己
H5前端
问题描述:当苹果手机设置中的Safari开启了”请求桌面网站“,此时用navigator.userAgent来判断是否是移动端,就会出现问题,如下的判断:varisMobile=/Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent.toLowerCase());因为开启了”请求桌面网站“后,此时获取的userAg
- 亚马逊云科技和BlackBerry QNX携手通过智能车辆数据新平台BlackBerry IVY加速汽车创新
习惯n1い那专属我的温柔
科技云计算科技
不久前,亚马逊云科技与智能安全软件及服务领域的全球领导者黑莓BlackBerryQNX达成一项为期多年的全球协议,共同开发了一款名为BlackBerryIVY的智能车辆数据平台。作为一款与云连接的可扩展软件平台,BlackBerryIVY支持汽车制造商以一致且安全的方式读取车辆传感器数据、加以规范化、并在车辆内和云端利用这些数据生成可执行的解析。汽车制造商可以利用这些信息创建响应式车载服务,增强驾
- 亚马逊云科技和BlackBerry QNX携手加速汽车创新
壹科技
sqlite
不久前,亚马逊云科技与智能安全软件及服务领域的全球领导者黑莓BlackBerryQNX达成一项为期多年的全球协议,共同开发了一款名为BlackBerryIVY的智能车辆数据平台。作为一款与云连接的可扩展软件平台,BlackBerryIVY支持汽车制造商以一致且安全的方式读取车辆传感器数据、加以规范化、并在车辆内和云端利用这些数据生成可执行的解析。汽车制造商可以利用这些信息创建响应式车载服务,增强驾
- 亚马逊云科技和BlackBerry QNX共同开发智能车辆数据平台
小红帽8
科技
不久前,亚马逊云科技与智能安全软件及服务领域的全球领导者黑莓BlackBerryQNX达成一项为期多年的全球协议,共同开发了一款名为BlackBerryIVY的智能车辆数据平台。作为一款与云连接的可扩展软件平台,BlackBerryIVY支持汽车制造商以一致且安全的方式读取车辆传感器数据、加以规范化、并在车辆内和云端利用这些数据生成可执行的解析。汽车制造商可以利用这些信息创建响应式车载服务,增强驾
- nginx判断是否是移动端/判断浏览器语言
IARNO
判断移动端#判断移动端,跳转转到m.aaa.comif($http_user_agent~*(mobile|nokia|iphone|ipad|android|samsung|htc|blackberry)){rewrite^/(.*)$http://m.aaa.comredirect;#这里随意使用,这一行代表域名栏会跳转到m.aaa.com#proxy_passhttp://101.200.1
- java cdata xml 解析_java – 如何解析<![CDATA []]>的XML
框框框子
javacdataxml解析
publicstaticvoidmain(String[]args)throwsException{Filefile=newFile("data.xml");DocumentBuilderbuilder=DocumentBuilderFactory.newInstance().newDocumentBuilder();//ifyouareusingthiscodeforblackberryxmlp
- 使用Python脚本来生成用于测试的文件
青衫客36
Pythonpython
使用Python脚本生成指定数量的文件,每个文件约10MB,内容为重复的英文句子,单词间只有空格作为分隔符。importosimportsysimportrandomWORDS=["apple","apricot","avocado","banana","blackberry","blueberry","cherry","cranberry","dragonfruit","fig","grape"
- 2023/10/23
搜捕鸟了
每周小记前端vue.jsjavascript笔记git
1.判断当前环境是pc端还是移动端if(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|OperaMini/i.test(navigator.userAgent)){//移动端逻辑console.log("当前是移动端");}else{//PC端逻辑console.log("当前是PC端");}2.SDK是什么SDK全称softwaredev
- 黑莓手机的辉煌与落寞
托什
辉煌911事件让纽约城的通讯几乎全部瘫痪,与外界的联系几乎完全隔绝。而此时出现了一位英雄,它凭借强大的BlackBerryInternetService、BlackBerryEnterpriseServer和BlackBerryMessenger,使得用户可以与外界联络,这就是黑莓。此后,黑莓在很长的一段时间里都是白宫工作人员的标配,美国总统奥巴马本人就是黑莓的忠实粉。黑莓公司是加拿大的一家通信公
- 移动设备管理对企业IT 安全的增强
ManageEngine卓豪
移动设备管理移动设备管理移动设备安全MDM
移动设备管理(MDM)是通过定义策略和部署安全控制(如移动应用程序管理、移动内容管理和条件Exchange访问)来管理移动设备的过程。完整的MDM解决方案可以管理在Android,iOS,Windows,macOS,BlackBerryOS和ChromeOS上运行的设备。随着企业移动性管理的发展,一些MDM解决方案还支持Windows10和IoT设备。MDM使管理员能够从一个中心位置管理智能手机、
- PhoneGap 插件简介
@BruceYan@
移动开发移动设备跨平台phonegapphonegap插件phonegapjavascriptactionfunctioncallbackandroid
一、PhoneGap平台前不久PhoneGap发布了1.0版本,这为移动开发大家族提供了又一个跨平台的解决方案。开发者只要有JavaScript、CSS3、Html5的基础就可以快速开发移动应用,并且一次开发支持iOS、iOS(xcode4)、Android、WebOS、Blackberry、Symbian六大平台。不过,JavaScript的速度虽然在近些年提高了100倍,其速度还是无法和原生代
- 手机网站设置几秒后强制跳转商务通
2018奔跑的蜗牛
前端手机跳转js
日常工作当中经常会遇到网站打开几秒钟需要强制跳转到各种页面,对于竞价之类的网站,会强制跳转到商务通,这里把经常会用到的此类代码封装到一个js里边,方便以后调用://if(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|OperaMini/i.test(navigator.userAgent)){setInterval(function(){v
- Java实现的简单双向Map,支持重复Value
superlxw1234
java双向map
关键字:Java双向Map、DualHashBidiMap
有个需求,需要根据即时修改Map结构中的Value值,比如,将Map中所有value=V1的记录改成value=V2,key保持不变。
数据量比较大,遍历Map性能太差,这就需要根据Value先找到Key,然后去修改。
即:既要根据Key找Value,又要根据Value
- PL/SQL触发器基础及例子
百合不是茶
oracle数据库触发器PL/SQL编程
触发器的简介;
触发器的定义就是说某个条件成立的时候,触发器里面所定义的语句就会被自动的执行。因此触发器不需要人为的去调用,也不能调用。触发器和过程函数类似 过程函数必须要调用,
一个表中最多只能有12个触发器类型的,触发器和过程函数相似 触发器不需要调用直接执行,
触发时间:指明触发器何时执行,该值可取:
before:表示在数据库动作之前触发
- [时空与探索]穿越时空的一些问题
comsci
问题
我们还没有进行过任何数学形式上的证明,仅仅是一个猜想.....
这个猜想就是; 任何有质量的物体(哪怕只有一微克)都不可能穿越时空,该物体强行穿越时空的时候,物体的质量会与时空粒子产生反应,物体会变成暗物质,也就是说,任何物体穿越时空会变成暗物质..(暗物质就我的理
- easy ui datagrid上移下移一行
商人shang
js上移下移easyuidatagrid
/**
* 向上移动一行
*
* @param dg
* @param row
*/
function moveupRow(dg, row) {
var datagrid = $(dg);
var index = datagrid.datagrid("getRowIndex", row);
if (isFirstRow(dg, row)) {
- Java反射
oloz
反射
本人菜鸟,今天恰好有时间,写写博客,总结复习一下java反射方面的知识,欢迎大家探讨交流学习指教
首先看看java中的Class
package demo;
public class ClassTest {
/*先了解java中的Class*/
public static void main(String[] args) {
//任何一个类都
- springMVC 使用JSR-303 Validation验证
杨白白
springmvc
JSR-303是一个数据验证的规范,但是spring并没有对其进行实现,Hibernate Validator是实现了这一规范的,通过此这个实现来讲SpringMVC对JSR-303的支持。
JSR-303的校验是基于注解的,首先要把这些注解标记在需要验证的实体类的属性上或是其对应的get方法上。
登录需要验证类
public class Login {
@NotEmpty
- log4j
香水浓
log4j
log4j.rootCategory=DEBUG, STDOUT, DAILYFILE, HTML, DATABASE
#log4j.rootCategory=DEBUG, STDOUT, DAILYFILE, ROLLINGFILE, HTML
#console
log4j.appender.STDOUT=org.apache.log4j.ConsoleAppender
log4
- 使用ajax和history.pushState无刷新改变页面URL
agevs
jquery框架Ajaxhtml5chrome
表现
如果你使用chrome或者firefox等浏览器访问本博客、github.com、plus.google.com等网站时,细心的你会发现页面之间的点击是通过ajax异步请求的,同时页面的URL发生了了改变。并且能够很好的支持浏览器前进和后退。
是什么有这么强大的功能呢?
HTML5里引用了新的API,history.pushState和history.replaceState,就是通过
- centos中文乱码
AILIKES
centosOSssh
一、CentOS系统访问 g.cn ,发现中文乱码。
于是用以前的方式:yum -y install fonts-chinese
CentOS系统安装后,还是不能显示中文字体。我使用 gedit 编辑源码,其中文注释也为乱码。
后来,终于找到以下方法可以解决,需要两个中文支持的包:
fonts-chinese-3.02-12.
- 触发器
baalwolf
触发器
触发器(trigger):监视某种情况,并触发某种操作。
触发器创建语法四要素:1.监视地点(table) 2.监视事件(insert/update/delete) 3.触发时间(after/before) 4.触发事件(insert/update/delete)
语法:
create trigger triggerName
after/before 
- JS正则表达式的i m g
bijian1013
JavaScript正则表达式
g:表示全局(global)模式,即模式将被应用于所有字符串,而非在发现第一个匹配项时立即停止。 i:表示不区分大小写(case-insensitive)模式,即在确定匹配项时忽略模式与字符串的大小写。 m:表示
- HTML5模式和Hashbang模式
bijian1013
JavaScriptAngularJSHashbang模式HTML5模式
我们可以用$locationProvider来配置$location服务(可以采用注入的方式,就像AngularJS中其他所有东西一样)。这里provider的两个参数很有意思,介绍如下。
html5Mode
一个布尔值,标识$location服务是否运行在HTML5模式下。
ha
- [Maven学习笔记六]Maven生命周期
bit1129
maven
从mvn test的输出开始说起
当我们在user-core中执行mvn test时,执行的输出如下:
/software/devsoftware/jdk1.7.0_55/bin/java -Dmaven.home=/software/devsoftware/apache-maven-3.2.1 -Dclassworlds.conf=/software/devs
- 【Hadoop七】基于Yarn的Hadoop Map Reduce容错
bit1129
hadoop
运行于Yarn的Map Reduce作业,可能发生失败的点包括
Task Failure
Application Master Failure
Node Manager Failure
Resource Manager Failure
1. Task Failure
任务执行过程中产生的异常和JVM的意外终止会汇报给Application Master。僵死的任务也会被A
- 记一次数据推送的异常解决端口解决
ronin47
记一次数据推送的异常解决
需求:从db获取数据然后推送到B
程序开发完成,上jboss,刚开始报了很多错,逐一解决,可最后显示连接不到数据库。机房的同事说可以ping 通。
自已画了个图,逐一排除,把linux 防火墙 和 setenforce 设置最低。
service iptables stop
- 巧用视错觉-UI更有趣
brotherlamp
UIui视频ui教程ui自学ui资料
我们每个人在生活中都曾感受过视错觉(optical illusion)的魅力。
视错觉现象是双眼跟我们开的一个玩笑,而我们往往还心甘情愿地接受我们看到的假象。其实不止如此,视觉错现象的背后还有一个重要的科学原理——格式塔原理。
格式塔原理解释了人们如何以视觉方式感觉物体,以及图像的结构,视角,大小等要素是如何影响我们的视觉的。
在下面这篇文章中,我们首先会简单介绍一下格式塔原理中的基本概念,
- 线段树-poj1177-N个矩形求边长(离散化+扫描线)
bylijinnan
数据结构算法线段树
package com.ljn.base;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Set;
import java.util.TreeSet;
/**
* POJ 1177 (线段树+离散化+扫描线),题目链接为http://poj.org/problem?id=1177
- HTTP协议详解
chicony
http协议
引言
- Scala设计模式
chenchao051
设计模式scala
Scala设计模式
我的话: 在国外网站上看到一篇文章,里面详细描述了很多设计模式,并且用Java及Scala两种语言描述,清晰的让我们看到各种常规的设计模式,在Scala中是如何在语言特性层面直接支持的。基于文章很nice,我利用今天的空闲时间将其翻译,希望大家能一起学习,讨论。翻译
- 安装mysql
daizj
mysql安装
安装mysql
(1)删除linux上已经安装的mysql相关库信息。rpm -e xxxxxxx --nodeps (强制删除)
执行命令rpm -qa |grep mysql 检查是否删除干净
(2)执行命令 rpm -i MySQL-server-5.5.31-2.el
- HTTP状态码大全
dcj3sjt126com
http状态码
完整的 HTTP 1.1规范说明书来自于RFC 2616,你可以在http://www.talentdigger.cn/home/link.php?url=d3d3LnJmYy1lZGl0b3Iub3JnLw%3D%3D在线查阅。HTTP 1.1的状态码被标记为新特性,因为许多浏览器只支持 HTTP 1.0。你应只把状态码发送给支持 HTTP 1.1的客户端,支持协议版本可以通过调用request
- asihttprequest上传图片
dcj3sjt126com
ASIHTTPRequest
NSURL *url =@"yourURL";
ASIFormDataRequest*currentRequest =[ASIFormDataRequest requestWithURL:url];
[currentRequest setPostFormat:ASIMultipartFormDataPostFormat];[currentRequest se
- C语言中,关键字static的作用
e200702084
C++cC#
在C语言中,关键字static有三个明显的作用:
1)在函数体,局部的static变量。生存期为程序的整个生命周期,(它存活多长时间);作用域却在函数体内(它在什么地方能被访问(空间))。
一个被声明为静态的变量在这一函数被调用过程中维持其值不变。因为它分配在静态存储区,函数调用结束后并不释放单元,但是在其它的作用域的无法访问。当再次调用这个函数时,这个局部的静态变量还存活,而且用在它的访
- win7/8使用curl
geeksun
win7
1. WIN7/8下要使用curl,需要下载curl-7.20.0-win64-ssl-sspi.zip和Win64OpenSSL_Light-1_0_2d.exe。 下载地址:
http://curl.haxx.se/download.html 请选择不带SSL的版本,否则还需要安装SSL的支持包 2. 可以给Windows增加c
- Creating a Shared Repository; Users Sharing The Repository
hongtoushizi
git
转载自:
http://www.gitguys.com/topics/creating-a-shared-repository-users-sharing-the-repository/ Commands discussed in this section:
git init –bare
git clone
git remote
git pull
git p
- Java实现字符串反转的8种或9种方法
Josh_Persistence
异或反转递归反转二分交换反转java字符串反转栈反转
注:对于第7种使用异或的方式来实现字符串的反转,如果不太看得明白的,可以参照另一篇博客:
http://josh-persistence.iteye.com/blog/2205768
/**
*
*/
package com.wsheng.aggregator.algorithm.string;
import java.util.Stack;
/**
- 代码实现任意容量倒水问题
home198979
PHP算法倒水
形象化设计模式实战 HELLO!架构 redis命令源码解析
倒水问题:有两个杯子,一个A升,一个B升,水有无限多,现要求利用这两杯子装C
- Druid datasource
zhb8015
druid
推荐大家使用数据库连接池 DruidDataSource. http://code.alibabatech.com/wiki/display/Druid/DruidDataSource DruidDataSource经过阿里巴巴数百个应用一年多生产环境运行验证,稳定可靠。 它最重要的特点是:监控、扩展和性能。 下载和Maven配置看这里: http
- 两种启动监听器ApplicationListener和ServletContextListener
spjich
javaspring框架
引言:有时候需要在项目初始化的时候进行一系列工作,比如初始化一个线程池,初始化配置文件,初始化缓存等等,这时候就需要用到启动监听器,下面分别介绍一下两种常用的项目启动监听器
ServletContextListener
特点: 依赖于sevlet容器,需要配置web.xml
使用方法:
public class StartListener implements
- JavaScript Rounding Methods of the Math object
何不笑
JavaScriptMath
The next group of methods has to do with rounding decimal values into integers. Three methods — Math.ceil(), Math.floor(), and Math.round() — handle rounding in differen