- 谈谈分布式事务之四: 两种事务处理协议OleTx与WS-AT
weixin_34417814
在年前写一个几篇关于分布式事务的文章,实际上这些都是为了系统介绍WCF事务处理体系而提供的相关的背景和基础知识。今天发最后一篇,介绍分布式事务采用的两种协议,即OleTx和WS-AT,内容比较枯燥,但对于后续对WCF事务处理框架进行深入剖析的系列文章来说,确是不可以缺少的。总的来说,基于WCF的分布式事务采用的是两阶段提交(2PC:TwoPhaseCommit)协议。具体来说,我们可以选择如下两种
- 使命必达: 深入剖析WCF的可靠会话[协议篇](下)
在《上篇》中,我们认识了从序列创建到终止过程中消息交换的大致流程。接下来,我们进一步将关注点聚焦到单个小消息上,看看在整个基于序列的上下文中,不同类型的消息具有怎样的结构。首先从序列的创建开始。一、CreateSequence和CreateSequenceReponse基于WS-RM的可靠消息传输从序列的创建开始。为了创建序列,RM源(RMSource)向RM目的地(RMDestination)发
- windows下Anaconda错误unacceptable character #x0000导致无法打开
Alla T
windowspython开发语言数据分析人工智能
错误详情在错误产生前,本人没有对anaconda做出多余改动,所以也不清楚错误原因…就很突然,啪的一下很快啊,conda图标打不开了、闪退了,然后返回了错误页面信息。MainError:unacceptablecharacter#x0000:specialcharactersarenotallowedin“C:\Users\wcf.continuum\anaconda-client\config.
- Mybatis 逆向工程创建实体类及简单的增删改查
Main12138
持久层mybatismysqljavaxml
Mybatis逆向工程1、概念mybatis可以根据已有的数据库表进行相应的代码生成,为项目的创建书写提供便利,会根据数据库表字段创建对应的实体类,与通用mapper接口以及对应的实现配置,额外提供了对于单表操作动态拼写的相应配置.2、逆向工程创建(1)创建项目(2)导入逆向工程jar包与mysql连接jar包所需资源链接:https://pan.baidu.com/s/1OsSVCfRMnWcF
- 深入解析基于C#的Windows服务、WCF服务、WebService服务和WebApi服务
猿享天开
c#windows开发语言
目录1.Windows服务简介实现机制应用场景2.WCF服务简介实现机制应用场景3.WebService服务简介实现机制应用场景4.WebApi服务简介实现机制应用场景区别与联系协议和消息格式扩展性和复杂度使用场景总结总结在现代软件开发中,服务程序是不可或缺的组成部分。不同类型的服务程序具有各自的应用场景和实现机制。本文将深入解析基于C#的Windows服务、WCF服务、WebService服务和
- WPF内嵌WCF服务对外提供接口
weixin_30633507
jsonruntime
要测试本帖子代码请记得管理员权限运行vs。我写这个帖子的初衷是在我做surface小车的时候有类似的需求,感觉这个功能还挺有意思的,所以就分享给大家,网上有很多关于wcf的文章我就不一一列举了。公司有个旧的项目是winform写的,里面就有这个内嵌的wcf,我还没怎么搞过wpf,大家都说winform太老了,于是乎我就想用wpf内嵌下试试看看能不能成功。下面是我的surfacego小车的帖子。ht
- WPF与其他技术的集成:与 WinForms、WCF 等协同工作
xcLeigh
WPF从入门到精通wpfC#优化
WPF与其他技术的集成:与WinForms、WCF等协同工作一、前言二、WPF与WinForms集成2.1技术背景与特点2.2集成的必要性2.3集成方式与代码示例三、WPF与WCF集成3.1WCF技术概述3.2集成的应用场景3.3集成步骤与代码示例3.4集成中的安全与性能考虑四、总结结束语优质源码分享WPF与其他技术的集成:与WinForms、WCF等协同工作,在软件开发领域,很少有单一技术能够满
- python笔记之常用命令总结
chenlang_lbs
python笔记
1、nautilus:打开当前工作目录2、wcfiles_names:查看文件的数量3、Pycharm的常用命令ctrl+r:查找命令4、
[email protected]:获得进入nb@电脑的权限5、复制很长的数据的技巧:在数据前面点击+shift+在数据后面点击+(ctrl+c),完成复制
- 《英雄无敌3:死亡阴影》游戏秘籍
小魚資源大雜燴
游戏
部队相关nwcagents:在英雄部队的空位里加上10个黑骑士。nwctrinity:在英雄部队的空位里加上5个天使长。nwclotsofguns:得到所有战争机器。英雄能力相关nwcneo:英雄升一级。nwcnebuchadnezzar:英雄获得无限移动能力。nwcmorpheus:英雄士气最大。nwcfollowthewhiterabbit:英雄幸运最大。nwcthereisnospoon:英
- WCF服务测试实践:wcftest项目分析
时光派
本文还有配套的精品资源,点击获取简介:wcftest是一个与C#相关的项目,用于测试WindowsCommunicationFoundation(WCF)服务。WCF是微软提供的一种框架,支持构建、配置和服务间通信。本项目涵盖服务实现、配置文件、客户端代理、测试代码、解决方案文件、项目文件、示例客户端和项目文档资源。学习该项目需要掌握WCF和.NETFramework基础知识。1.WCF基础与应用
- C#流转输分段上传
工厂修程序
C#wcfC#
wcf流传输上传文件不能分段上传的问题已解决。技巧就是上传的流参数不用FileStream用MemoryStream即可。以下是代码:服务契约类:[ServiceContract()]publicinterfaceIMyServer{[OperationContract]voidUploadFile(UploadPartMessagemsg);}消息契约:[MessageContract]publ
- 微信机器人 DIY【Python 】
碲矿
微信机器人python
前面微信机器人DIY从0到1介绍了WeChatFerry的前世今生。写的人是觉得挺清楚了,但读的人多半云里雾里。也对,我只是想开车而已,何必需要知道发动机怎么造的?快速使用于是我把WeChatFerry打了个包,可以一键安装:pipinstallwcferry当然,还是有前提的,正如开车上路也需要持证一样。为了正常使用WeChatFerry,需要两个条件:Windows因为PC微信跑在Window
- wcferry 微信自动回复、自动保存图片、调用等
运维知多少
python3微信
之前用的那个微信web登录方式,2天就要掉线,所以现在采用wcferry,windows登录方式。目前所有功能以迁移完成,使用正常。docker部署windows系统version:'3'#使用最新版本services:app1:image:dannicool/wechatbot-provider-windows:latestcontainer_name:wechatbot-provider-wi
- C++ 更改字体大小
Nobody-H
C++编程
m_pMyFont_Big=newCFont;m_pMyFont_Big->CreateFont(60,//nHeight0,//nWidth0,//nEscapement0,//nOrientationFW_HEAVY,//nWeightFALSE,//bItalicFALSE,//bUnderline0,//cStrikeOutOEM_CHARSET,//nCharSetOUT_DEVICE_
- D. Water Tree
Lanthanmum
算法数据结构
模板题#include#includeusingnamespacestd;constintN=5e5+9;intn;//树剖//1.转成线性部分vectore[N];voidadd(intu,intv){e[u].push_back(v);e[v].push_back(u);}intfa[N],dep[N],sz[N],wc[N];voiddfs1(intu,intf){//fadepszwcfa
- C#用 IPC通道 进程间通信
北风知我意
有一个解决方案,其中包括一个Windows服务和一个Windows应用程序,两者之间需要进行通信。查了下,可以使用多种方法,如Webservice(适用于不同系统及跨平台情况)、.NETRemoting、消息队列、WCF(集成了前述方法的功能,但太新,不支持Windows2000及以前的系统),其中Remoting可以支持TCP、HTTP、IPC通道的通信,而IPC通道速度快,且仅能供处于同一个系
- java的Lock使用
无尘粉笔
packagecom.wcfb.service;importcn.hutool.core.thread.ThreadUtil;importjava.util.concurrent.locks.Condition;importjava.util.concurrent.locks.Lock;importjava.util.concurrent.locks.ReentrantLock;/***@auth
- windows系统时间被修改导致wcf失联
wangyue4
windows
Windows系统时间被修改可能会干扰WCF(WindowsCommunicationFoundation)服务的正常运作,特别是在安全通讯和消息有效性验证方面。WCF使用时间戳来确保消息的安全性和防止重放攻击。如果系统时间被修改,可能会导致以下问题:安全令牌可能被认为是无效的,因为它们依赖于当前时间。消息的有效性(时间戳)可能无法验证,导致服务无法接受消息。SSL/TLS证书可能会因为时间问题而
- 2023年最新京东web端h5st3.0/3.1/4.1/4.2算法分析
danran550
逆向笔记前端
文章目录前言一、初步分析二、详细分析总结h5st4.2分析:https://blog.csdn.net/danran550/article/details/133807065前言最近无聊研究某东网页发现多了个h5st加密参数,在这里分析一下逆向步骤,跟大家共同学习。一、初步分析完整的h5st参数如下:20230219224055580;5811449597265311;e74d9;tk03wcfb
- ASP.NET资源大全-知识分享 【转载】
weixin_30808693
c#操作系统git
API框架NancyFx:轻量、用于构建HTTP基础服务的非正式(low-ceremony)框架,基于.Net及Mono平台。官网ASP.NETWebAPI:快捷创建HTTP服务的框架,可以广泛用于多种不同的客户端,包括浏览器和移动设备。官网ServiceStack:架构缜密、速度飞快、令人愉悦的web服务。官网Nelibur:Nelibur是一个使用纯WCF构建的基于消息的web服务框架。Nel
- Web API-添加Swagger,SQL Server,记录并导出到Excel
寒冰屋
ASP.NETCORE架构及框架CSharp.NETWebAPISwaggerExcel
目录介绍要求1.创建一个新的WebAPI项目2.将Swagger添加到项目3.将项目连接到SQLServer数据库4.登录到SQLServer5.添加“导出到Excel”总结下载MikesBank-239.6KB介绍自2016年发布以来,ASP.NETCore取得了惊人的进展,而且每个版本似乎都变得更好,更友好且对开发人员更友好。WebAPI是对旧的WCF服务的巨大改进(我们甚至不谈论SOAP..
- [WCF安全系列]从两种安全模式谈起
中科恒信
WCF的安全体系主要包括三个方面:传输安全(TransferSecurity)、授权或者访问控制(AuthorizationORAccessControl)以及审核(Auditing)。而传输安全又包括两个方面:认证(Authentication)和消息保护(MessageProtection)。认证帮助客户端或者服务确认对方的真实身份,而消息保护则通过签名和加密实现消息的一致性和机密性。WCF采
- WCF接口的创建和使用
DotNeter-Hpf
.NETFramework接口c#
IIS默认没有WCF运行环境,我自行百度的解决方案,大家可以点击参考下第一次做的时候参考的文章,创建WCF服务应用程序是可以直接挂在IIS上运行的,不需要控制台去控制服务是否开启1.使用VS2019创建一个新项目将原有的Class1.cs文件删除,选择项目右键–新建项,找到WCF服务在IService1.cs中添加一段代码,[OperationContract]stringGetData(intv
- WCF for .NET CF的一个应用及两个困惑的问题
shansheng
wcf.netstringbindingmobile数据库
头段时间看了fox23的两篇WCFMobile的文章,就自己动手做了简单的日志填写程序,就是一张数据表,可以记录某日几点到几点做了哪些工作,公司规定每天都要填写。程序结构如下:服务器端:Foolish.CMIS.ServiceFoolish.CMIS.WCFHost客户端:WorkLog4Mobile具体步骤为:新建一个WCF项目,命名为Foolish.CMIS.Service,然后定义一个服务的
- 金和OA jc6 GetAttOut SQL注入漏洞复现
keepb1ue
漏洞复现sql数据库web安全安全
产品简介金和OA协同办公管理系统j6软件是一种综合性的协同办公解决方案,旨在提高企业内部的协作效率和工作效率。它提供了一系列功能和工具,帮助组织进行任务管理、日程安排、文件共享、团队协作和沟通等方面的工作漏洞概述金和OAjc6/jc6/JHSoft.WCF/TEST/GetAttOut接口处存在SQL注入漏洞,攻击者不仅可以利用SQL注入漏洞获取数据库中的敏感信息,还可以向服务器中写入恶意木马或者
- WCF REST消息格式(JSON/XML)选择
!chen
jsonxml
可以说WebHttpBinding和WebHttpBehavior是整个WebHTTP编程模型最为核心的两个类型,前者主要解决消息编码问题,而余下的工作基本上落在了终结点行为WebHttpBehavior上。WebHttpBehavior属性HelpEnabled和AutomaticFormatSelectionEnabled是“帮助页面”与“自动消息格式选择”这两个特性的总开关。publiccl
- Webservice,WCF,WebAPI--特点及进化史
@Crazy Snail
开发框架基础知识WebserviceWCFWebAPI
WebService、WCF和WebAPI是Microsoft在不同时期推出的三种基于不同技术和架构的Web服务技术。它们在不同时期的演化中逐步推出,以满足不断变化的需求和技术发展的趋势。1.WebService:WebService是一种使用SOAP协议和XML消息格式的Web服务技术,由W3C制定,早期用于实现跨平台的分布式应用程序。WebService基于HTTP协议,通过远程调用方式提供服
- 1、C#基础
板栗_1c34
MFC(MicrosoftFoundationClass,微软基础类库)COM(ComponentObjectModel,对象组件模型)CLR(CommonLanguageRuntime,公共语言运行库)1、NET框架的组成.NET框架由三部分组成,如下图所示。图片.png(1)编程工具:IDE、编译器、调试器、网站开发服务端技术(ASP.NET,WCF等);(2)执行环境—CLR(公共语言运行库
- IIS部署WCF的文件夹要加上IIS_USERS的权限
白小白之路C#
C#WCF服务器运维
弯路1,文件夹没加权限报错:报错如图:弯路2:多网卡多IP,要设置固定IP。样式:http://192.168.1.4:8080/Service1.svc
- 三层架构调用WCF的配置文件问题
白小白之路C#
C#WCF三层架构
三层架构在业务逻辑层调用的WCF服务生成的配置文件,在生成后UI调用需要把业务逻辑层的WCF生成的配置拷到UI层的APP.config里面才能调用
- 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